package ScalaStudy.chapter08

object Test03_MatchTupleExtend {
  def main(args: Array[String]): Unit = {


    //////////////////////////////////////////////////////////////////////////////////////////
    ///////////////////////////////////////  匹配元组推展  //////////////////////////////////////
    ///////////////////////////////////////////////////////////////////////////////////////////

    //1. 在变量声明时匹配

    println("================== 声明变量时进行匹配 ===================")

    val (x,y) = (10, "hello")
    println(s"x: $x, y: $y")

    val List(first, second, _*) = List(23, 15 ,9, 78)
    println(s"first: $first, second: $second")

    val fir :: sec :: rest = List(23, 15, 9, 18)
    println(s"fir: $fir, sec: $sec, rest: $rest")

    println("================ for推导式中进行模式匹配 =================")

    val list: List[(String, Int)] = List(("a", 12), ("b", 15), ("c", 27))

    println("======= 采用遍历方式 =======")

    for (elem <- list){
      println(elem._1 + " " + elem._2)
    }

    println("======= 将List元素直接定义为元组，对变量赋值 =======")

    for((word, count) <- list){
      println(word + " " + count)
    }

    println("======= 不考虑某个位置的变量，只遍历key或者value =======")

    for((word, _) <- list){       //只对key进行遍历
      println(word)
    }

    println("======= 可以指定某个位置的值必须是多少 =======")

    for(("a", count) <- list){   //遍历a对应的值是13
      println(count)
    }











  }
}
